package com.skt.TFriend.scheduler;

import java.util.Calendar;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class Scheduler {
	private Context	mContext;
	private static final String TAG = "Scheduler";
	private AlarmManager mManager;
	
	public Scheduler(Context context){
		this.mContext = context;
	}
	
	// 모든 알람을 받을 모든 스케쥴 등록.....
	public void setAllAlarmScheduleReg(){
		Calendar calendar = Calendar.getInstance();
		
		Intent intent = new Intent();
		intent.setAction("COM.SKT.TFRIEND.WEATHER_ALARM");
		 
		PendingIntent pIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
		mManager = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
		mManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 60000, pIntent);
	}
	
	// 날씨 알람 주기 설정(자동 간격)
	public void setWeatherScheduleReg(){
		
	}
	// 알람 api........
	/*	
		AlarmManager.ELAPSED_REALTIME : 단말기가 부팅된 이후 경과된 시간을 기준으로 합니다.
		AlarmManager.ELAPSED_REALTIME_WAKEUP : ELAPSED_REALTIME과 동일하며, 대기상태일 경우 단말기를 활성상태로 전환한 후 작업을 수행합니다.
		AlarmManager.RTC : 실제 시간을 기준으로 합니다.
		AlarmManager.RTC_WAKEUP : RTC와 동일하며, 대기상태일 경우 단말기를 활성 상태로 전환한 후 작업을 수행합니다.
		
		//비정기알람
		public void set (int type, long triggerAtTime, PendingIntent operation)
		한  번만 수행되는 알람을 예약합니다.
		
		public void setRepeating (int type, long triggerAtTime, long interval, PendingIntent operation)
		반복되는 알람을 예약합니다.
		 scheduler
		public void setInexactRepeating (int type, long triggerAtTime, long interval, PendingIntent operation)
		setRepeating() 메서드와 동일하나, 알람이 지정된 시각에 정확하게 일어나지 않을 수 있습니다. 정확성보다는 일정 주기로 특정 작업을 수행하기만 하면 될 때 사용합니다
	*/
	
	//노티 알림 제공....	
	//교통정보, 날씨정보...매 몇시마다....가져와서 db에 저장하는지 셋팅
	
	//날씨정보 셋팅(매시간)
	
	//1단계 알람등록(30분간격) 구글캘린더...provider로 읽어와서....
	// getFor어쩌구 메소드 돌리면 주소값이 정확이 나온다.
	//dbhelp써서.....로컬db에 저장
//	public void setWetherScheduler(int time){
//		AlarmManager am = (AlarmManager)mContext.getSystemService(mContext.ALARM_SERVICE);
//		
//		//am.setInexactRepeating(type, triggerAtTime, interval, operation);
//	}
	
//	public static void registerAlarm(Context context) 
//	{     
//		Log.e(TAG, "registerAlarm");           
//		Intent intent = new Intent(context, NotificationReceiver.class);     
//		intent.setAction(NotificationReceiver.INNER_PUSH);     
//		PendingIntent sender = PendingIntent.getBroadcast(context, mCrouteCode, intent, 0);               
//		AlarmManager manager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);               
//		long triggerTime = SystemClock.elapsedRealtime() + 1000*60;     
//		manager.set(AlarmManager.ELAPSED_REALTIME, triggerTime, sender); 
//		}
}
